package com.example.sqlitedemo0413.utils;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.strictmode.SqliteObjectLeakedViolation;
import android.util.Log;

import androidx.annotation.Nullable;

/*
* SQLiteOpenHelper
* 1.提供了onCreate() onUpgrade() 等创建数据库更新数据库的方法
* 2.提供了获取数据库对象的函数
*/
public class MySqliteHelper extends SQLiteOpenHelper {

    /**
     * 构造函数
     * context 上下文对象
     * name   表示创建数据库名称
     * factory  游标工厂
     * version  表示创建数据库的版本>=1
     */
    public MySqliteHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    //传入上下文对象
    public MySqliteHelper(Context context ){
        super(context,Constant.DATABASE_NAME,null,Constant.DATABASE_VERSION);
    }

    /*
    *当数据库创建时回调的函数
    * db ---> 数据库对象
    */
    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.i("tag","---------onCreate-------------");
        String sql="create table "+Constant.TABLE_NAME+"("+Constant._ID+
                " Integer primary key,"+Constant.NAME+" varchar(10),"+
                Constant.AGE+" Integer)";
        db.execSQL(sql); //执行sql语句
    }

    /*
    * 当数据库版本更新时回调的函数
    * db  数据库对象
    * oldVersion  数据库旧版本
    * newVersion   数据库新版本
    */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

    /*
    * 当数据库打开时回调的函数
    * db  数据库对象
    * */
    @Override
    public void onOpen(SQLiteDatabase db) {
        super.onOpen(db);
        Log.i("tag","-----------onOpen-----------");
    }
}
